The present invention relates to a coupling facility (CF) and specifically the addressing of objects within a coupling facility.
A coupling facility (CF) provides a structured means of connecting multiple central processing complexes (CPCs) to allow efficient interchange of data between multiple physical systems while maintaining coherency of the data across all systems. The coupling facility consists of high-speed intersystem (IS) channels, central processing units (CPUs), random-access memory (RAM) storage that is accessed by the IS channels and CPUs, and control software running in the CPUs.
A coupling facility structure represents a set of objects maintained on behalf of attaching systems. A structure is similar to a shared file in a direct-access storage device (DASD) except that structures are maintained in the coupling facility's storage. The coupling facility receives commands from attaching CPCs via the IS channels, executes the commands, and returns responses over the IS channels. The commands may create, write, read, update, or delete structures on behalf of the attaching CPCs. In response to certain commands, the CF may notify attaching CPCs of state changes in certain structure objects. Memory within the CF is categorized as either control storage or non-control storage.
Control storage is used to maintain CF objects that require byte-level processing by the CPUs. In a structure, entries comprise one class of objects that are maintained in control storage. Entries may contain name, key, index, and other values that must be examined and/or updated by the CPU to successfully complete a CF command. Such objects are hereafter referred to as control objects.
Non-control storage is used to maintain CF objects that do not require direct manipulation by the CPUs. In a structure, elements comprise another class of objects that may be maintained in non-control storage. Elements are not normally manipulated by the CPU during CF command execution and they may be moved directly between the IS channels and storage locations with no other CPU intervention. Such objects are hereafter referred to as data objects. If non-control storage is not present in a CF configuration, control storage is used to maintain all of the objects (control and data objects) in the CF's memory.
Storage in a coupling facility stores a maximum number of bytes, 2.sup.Max. In one example, Max is 44 so that 16 terabytes (2.sup.44 bytes) of structure objects can be stored. To minimize real storage management overhead, storage is apportioned to structures in units of storage increments (SIs). The SI size is model-dependent. Typical CF models have used an SI size of 262, 144 bytes (256 kilobytes or 256 KB).
Coupling facility products from Amdahl, IBM and others have been implemented using S/390-based platforms but coupling facilities can be implemented on any hardware platform. The S/390 architecture is well-known to represent the foundation for robust, high-performance, high-reliability computing platforms. In S/390 architecture, central storage represents the CF concept of control storage and expanded storage represents the CF concept of non-control storage. In IBM-derived publications, such as U.S. Pat. No. 5,317,739, the coupling facility is referred to as shared electronic storage, shared external storage or structured external storage (SES).
The S/390 architecture provides virtual addressing capabilities using dynamic address translation (DAT) to form real storage addresses. Virtual addresses are limited to 31 bits, providing a maximum of 2,147,483,648 bytes (2 gigabytes or 2 GB) per virtual address space; real addresses are also limited to 31 bits, providing a maximum of 2 GB of central storage per domain where a domain is sometimes called a logical partition (LPAR). When the coupling facility executes in a domain limited to 2 GB of storage, the coupling facility is limited to 2 GB for all control objects of all structures. The control storage can be distributed among several separate structures or all of control storage can be consumed by a single structure.
In some Amdahl systems, coupling control code (ACCC) uses a "flat" memory model where virtual addresses map to identical real addresses. This type of memory model is commonly referred to as virtual-equals-real (V=R). In some systems, dynamic address translation has been used to segregate process stacks. In such systems, storage increments are allocated to structures dynamically in response to an attaching CPC systems' commands to allocate, expand, contract, or deallocate structures. As a result, the storage increments belonging to one structure can be discontiguous in both virtual and real memory.
A structure's storage by software execution can be made to appear to have objects stored in any order. Specifically, the storage order by software execution can map to the order of the CF command processing of functions, but such ordering by software execution results in additional overhead in the accessing of objects within a structure. Further, such a software implementation tends to subject the entire memory, including all structures, to errors in the event that errors occur in the coupling facility control code. Such software errors are difficult to detect and the errors in data caused by such software errors are difficult to correct.
In order to simplify the command processing logic of a coupling facility, it is desirable to avoid having objects span multiple SIs, that is, it is desirable to avoid having part of an object reside in one SI with the remainder of that object in another SI. In order to avoid such spanning by software execution, object space in structures must be reserved and hence portions of control objects' SI is unavailable for normal use and hence is wasted.
The addressing capabilities of some systems have been found inadequate for large amounts of data. Efforts have been made to overcome these inadequacies by providing additional addressing features. In S/390 architecture, although bits 0 and bits 24-31 of the page table entry are reserved, these bits can be used to provide additional addressing features. In one example, extensions to the S/390 dynamic address translation (DAT) hardware have been made to the format of the page table entry (PTE) used in the DAT process to provide an extended-real addressing (ERA) feature. The use of the extended-real addressing feature in a domain is mutually exclusive with the use of an expanded storage feature in that domain. Although the enablement of the extended-real addressing feature within a domain precludes the use of the expanded storage feature in that domain, other domains in which the ERA feature is not enabled continue to operate according to the S/390 architecture or with other addressing features enabled.
While various improvements have been made and proposed to enable addressing of large amounts of data, there is a need for improvements in coupling facilities that permit addressing large amounts of data efficiently and reliably.